use std::alloc::GlobalAlloc;
use std::fmt::{Display};
use clap::Parser;
use crate::opts::*;
use crate::opts::base64_opts::Base64Opts;
use crate::opts::csv_opts::CsvOpts;
use crate::opts::gen_pass_opts::GenPassOpts;


#[derive(Debug, Parser)]
#[command(name = "rcli", version, author, about, long_about = "None")]
pub struct Opts {
    #[command(subcommand)]
    pub cmd: Subcommand,
}

#[derive(Debug, Parser)]
pub enum Subcommand {
    #[command(name = "csv", about = "Show Csv Convert to other formats")]
    Csv(CsvOpts),   // csv 转其他格式

    #[command(name = "genpass", about = "Generate a random password")]
    GenPass(GenPassOpts), // 生成密码

    #[command(name = "base64", about = "encode or decode Base64")]
    Base64(Base64Opts), // base64 编码 解码


    #[command(subcommand)]
    text(TextSubCommand)

}






